x86: allow IRQs to work without APIC again
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 22 Sep 2009 07:28:26 +0000 (08:28 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 22 Sep 2009 07:28:26 +0000 (08:28 +0100)
Non-IO-APIC IRQs must get 1:1 mapped between domain PIRQ and Xen IRQ.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
xen/arch/x86/domain.c

index 94819a675e1dbe2b0273db4d9bb32283c5e46d45..9bfac88412ea048299f1b14b10b08ec9a45c03eb 100644 (file)
@@ -487,6 +487,10 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
         memset(d->arch.irq_pirq, 0,
                nr_irqs * sizeof(*d->arch.irq_pirq));
 
+        for ( i = 1; platform_legacy_irq(i); ++i )
+            if ( !IO_APIC_IRQ(i) )
+                d->arch.irq_pirq[i] = d->arch.pirq_irq[i] = i;
+
         if ( (rc = iommu_domain_init(d)) != 0 )
             goto fail;